#FileMaker PHP API
Explore tagged Tumblr posts
filemakerexperts · 25 days ago
Text
Listenansichten in FileMaker optimieren/ PHP und FileMaker
Listenansichten in FileMaker optimieren Nach einigen Jahren und vielen 1000 Datensätzen die neu ins FileMaker-System gekommen sind, war es soweit. Eine spürbare Verschlechterung der Performance beim Aufbau einer extrem komplexen Listenansicht. Diese Ansicht enthält sehr viele Sortierungen, diverse bedingte Formatierungen zum Ein und Ausblenden von Symbolen, Farbgebung etc. Wenn jetzt noch jemand per VPN auf die Datenbank zugreifen wollte, so konnte es einige Zeit dauern bis die Arbeitsfähigkeit hergestellt war. Dabei wurde die Struktur schon ohne Formeln entwickelt. Die schnellste und effektivste Lösung. Alles wird über ein WebViewer abgewickelt. Betritt der User das Listen-Layout wird ein Serverscript gestartet, sammelt alle FileMaker Daten und überträgt diese dann an ein PHP-Script. Bruchteile später, steht die Liste schon zum arbeiten bereit. Da die Liste nur mit Java-Script arbeitet, sind alle Aktionen sehr schnell. Die Daten werden mithilfe eines FileMaker-Skripts vorbereitet und mit Insert from URL an eine PHP-Datei auf dem Server geschickt. Der Request erfolgt als klassischer application/x-www-form-urlencoded-POST-Aufruf. Der Server nimmt die Daten entgegen, bereinigt sie, zerlegt ggf. Pipe-getrennte Listen, und speichert sie in einem assoziativen Array zur weiteren Verarbeitung.
<?php // Daten säubern function cleanData($value) { return trim($value); } // Pipe-Werte aufspalten (z. B. '4711|4712|4713') function processPipeSeparatedValues($value) { return array_map('trim', explode('|', $value)); } // POST-Verarbeitung starten if ($_SERVER['REQUEST_METHOD'] === 'POST') { $postData = array_map('cleanData', $_POST); // Weiterverarbeitung folgt... } ?>
Auf der FileMaker-Seite wird der Post so aufbereitet Das PHP-Skript erzeugt eine strukturierte HTML-Tabelle, die über CSS und JavaScript erweitert wird. Sticky-Header, Hover-Effekte, Icons, Kartenintegration, alles dabei. Dank JavaScript lassen sich die Einträge mit einem Klick sortieren. Nach PLZ, Straße oder Kategorie. Auch Gruppierungen sind möglich, z. B. nach Stadtvierteln oder Bezirken, die dynamisch über Google Maps Geocoding ermittelt werden.
function sortByPLZ() { const table = document.querySelector("table"); const tbody = table.querySelector("tbody"); const rows = Array.from(tbody.querySelectorAll("tr")); // Entferne alte Gruppenköpfe document.querySelectorAll(".plz-header").forEach(row => row.remove()); // Sortiere Zeilen nach PLZ (Spalte 12, also index 12) rows.sort((a, b) => { const plzA = a.cells[12].textContent.trim(); const plzB = b.cells[12].textContent.trim(); return plzA.localeCompare(plzB, "de", { numeric: true }); }); // Neue Gruppierung einfügen let currentPLZ = ""; rows.forEach(row => { const plz = row.cells[12].textContent.trim(); if (plz !== currentPLZ) { currentPLZ = plz; const headerRow = document.createElement("tr"); headerRow.className = "plz-header"; const headerCell = document.createElement("td"); headerCell.colSpan = row.cells.length; headerCell.textContent = "PLZ: " + plz; headerRow.appendChild(headerCell); tbody.appendChild(headerRow); } tbody.appendChild(row); }); }
In dieser Ansicht wird unter anderem die Entfernung zu den nächsten Standorten ermittelt. Nach erfolgter Sortierung ist es sehr schnell möglich Aufträge zu verketten bei minimierter Fahrzeit. In dieser Ansicht aber nur berechnet über die Haversinsche Formel. Aber es ist ein extrem schneller Anhaltspunkt um Aufträge in Gruppen zusammenzufassen. Besonders charmant: Das ganze geht auch über die Google Maps API. Die Ansicht dann über Google Maps. Über das InfoWindows-Fenster lassen sich unendlich viele Informationen einblenden. In meinem Fall kann aus dieser Perspektive schon die Tourenzusammenstellung erfolgen. Es wird die Arbeitszeit ermittelt und kenntlich gemacht. Eine implementierte Fahrzeiten-Anzeige hat sich für Berliner-Verhältnisse als Unsinnig herausgestellt. Zu viele Verkehrsänderungen, zu viel Stau, in diesem Fall bedarf es der Erfahrung von Mitarbeitern und Disponenten. Wichtig, ist natürlich auch die Sequentielle-Suche. Diese kann natürlich wie schon einmal berichtet, auch in normalen FileMaker-Listen, Anwendung finden. Eine klassische FileMaker angelehnte Suche fehlt natürlich auch nicht. Hier lassen sich verschieden Kriterien verbinden und ermöglichen eine flexible Suche, ähnlich der klassischen FileMaker-Suche. Das ich im Regelfall innerhalb von FileMaker immer Arbeitslayouts nutze, die im Hintergrund bei -30000 Pixel arbeiten, kann ich aus dem WebViewer heraus, alle FileMaker Script nutzen, die im Vorfeld genutzt wurden. Sie bekommen die Parameter in einer etwas anderen Form, meist als Liste. Somit ist der Aufwand auf der FileMaker-Seite überschaubar. Fehlerbehandlung und Fallbacks Natürlich kann nicht immer alles glattlaufen, etwa wenn der Server nicht erreichbar ist oder die Daten aus FileMaker unvollständig übertragen werden. Für diesen Fall habe ich einen einfachen Mechanismus eingebaut. Wenn keine oder fehlerhafte Daten ankommen, zeigt das Skript entweder eine Hinweisbox oder einen minimalen Fallback-Inhalt an. Dabei ist es wichtig, am Anfang der Datei gleich zu prüfen, ob zentrale POST-Werte gesetzt wurden. Gerade bei VPN-Nutzern oder instabilen Mobilverbindungen ist das hilfreich, der Nutzer bekommt sofort Rückmeldung, statt auf eine leere Seite zu starren.
if (!isset($_POST['touren']) || empty($_POST['touren'])) { die("<div class='error'>Keine Daten empfangen. Bitte erneut versuchen.</div>"); }
Unterschied zwischen FileMaker-Client und Server Eine kleine, aber entscheidende Stolperfalle hat mich bei diesem Projekt einige Nerven gekostet. Während der gesamte Aufbau der Liste über den FileMaker Pro Client reibungslos funktionierte, lief das gleiche Script nicht mehr, wenn es über ein Server-Script (FileMaker Server) angestoßen wurde. Die WebViewer-Seite blieb leer. Kein Fehler, kein Hinweis, einfach nichts. Nach längerer Analyse stellte sich heraus, die Anzahl und Verschachtelungen der DOM-Elemente war der Grund. Im Client lief das Rendering noch sauber durch, aber der FileMaker Server scheint bei der Generierung und Übergabe des WebViewers, speziell in Kombination mit „Insert from URL“ -> WebViewer -> HTML-Rendering, empfindlicher zu reagieren. Besonders bei vielen verschachtelten div-Containern, Tabellen-Inlays und Icon-Ebenen war Schluss. Die Lösung war eher pragmatisch als elegant, ich habe den DOM deutlich verschlankt, viele dekorative Elemente entfernt oder durch schlankere Varianten ersetzt. Statt
mit drei Ebenen für Rahmen, Schatten und Hover, verwende ich jetzt.
<tr class="hover"> <td>4711</td> <td>Berlin</td> <td>…</td> </tr>
Und auch bei Zusatzinfos im InfoWindow der Google Maps Ansicht wurde auf alles Überflüssige verzichtet. Das Resultat, die Darstellung läuft jetzt reibungslos auch bei serverseitiger Übergabe, ohne dass der WebViewer hängen bleibt oder gar leer bleibt. Was bleibt nach dieser Umstellung? Ganz klar, die WebViewer-Lösung ist ein echter Gamechanger für große, komplexe Listenansichten in FileMaker. Die Performance ist kaum vergleichbar mit der klassischen Layoutdarstellung, besonders dann, wenn Sortierungen, Gruppierungen und visuelle Hilfsmittel wie Karten gebraucht werden. Eine HTML-Tabelle mit JavaScript schlägt hier jedes FileMaker-Layout um Längen.
0 notes
metasyssoftware-blog · 8 years ago
Text
How FileMaker 15 is transforming the business of building custom apps?
FileMaker provides custom apps across devices and platforms like iPad, iPhone, Windows, Mac and the web. The latest version of FileMaker has got enhanced features in terms of mobility, security, automation, ease of use and performance. These new features are simplifying the development of custom apps which can work across different platforms.
FileMaker’s core idea is to facilitate developers to create custom apps that are required by small and medium businesses. To help this FileMaker provides an extensive array of readymade templates. This reduces time to get started with the development and leaves more time to work on a more complex design and development. The enhanced features in FileMaker 15 will transform the business of building custom apps.
FileMaker Pro 15 is carrying forward the direction of the company to increase mobility with the help of some enhanced features. Some of these are:  
·  An additional security feature i.e. the Concealed Box will help users to be more careful with the content. The Concealed Edit Box feature does not reveal the content typed in the field to the onlookers as they just see some dots.
· Solutions which are frequently used can be added to the Quick Actions thus enabling a quicker way to access FileMaker solution.
· FileMaker Pro 15 sends notifications for any kind of software updates. One can easily download and install the update within FileMaker Pro 15. This was not possible in an earlier version.
· Lot of improvements have been made in the Script Workspace. Script Errors are highlighted in red color. So one can rectify the scripts immediately. There is an Unlimited Undo option which will give the users more freedom in creating something new and unique.
New features introduced in FileMaker Go 15 will give rich user experience for iOS users. Some of them are as follows:
· Touch ID adds an extra layer of security to the existing features in your application. This will allow the users to login into the application using the fingerprint. For phones without the Touch ID sensors, there will be a device passcode.
· The FileMaker app can be integrated with iBeacons. FileMaker Go 15 can associate data like text, image, video etc.  to the specific locations where iBeacons are present.
Your custom app can be further extended/linked to the Web using FileMaker/PHP API thus providing more opportunities.
MetaSys has a dedicated team of FileMaker developers, with experience in FileMaker 15. In case you have any queries related to FileMaker or looking for a quick solution catering to your business feel free to contact us.
As a FileMaker Business Alliance Member, we are also authorized resellers of FileMaker licenses. If you are looking to buy any of the FileMaker licenses then please click here.
lt��[�-
�Z���{I
0 notes
adalfa · 3 years ago
Link
0 notes
trusttw · 3 years ago
Text
Goya baseelements license
Tumblr media
Goya baseelements license password#
If BE_HTTP_Response_Code returns 200, we know the share was created. So the complete request using BE_HTTP_POST will beīE_HTTP_POST ( "path=/Photos/&shareType=0&shareWith=salvatore" ) Path=/Photos/&shareType=0&shareWith=salvatore If we want to share the folder Photos with the user salvatore the body will be These parameters are passed as the body of the POST request. the user with which the file should be shared.the share type (0 = user 1 = group 3 = public link 6 = federated cloud share).So to create a new share we can use the endpoint /ocs/v1.php/apps/files_sharing/api/v1/shares passing 3 parameters: If you have used Dropbox, Box or similar in the past the terminology used in Nextcloud can be a bit confusing: every time we share a file or folder we create a new "share", which doesn't mean we are creating a new folder. We can use the Share API to send a POST request to Nextcloud. Now we have the folder we want to share and the user identification. The url of the GET request will be our base URL followed by /ocs/v1.php/cloud/users which using the same example values becomesīE_HTTP_GET ( ) which for the users in this screenshot The HTTP Header OCS-APIRequest needs to be set to "true" and we can use BE_HTTP_Set_Custom_Header to set itīE_HTTP_Set_Custom_Header ( "OCS-APIRequest" "true" ). The Provision API uses a normal HTTP GET request to return an XML message. To decide who we are sharing our files with we need a way to identify them in the request, so our second step is to retrieve the list of users from the Nextcloud installation. The result is in XML and can be parsed using the functions BE_XPath and BE_XPathAll from the plugin. We will perform the call using the BE_HTTP_GET function If our username is admin and our domain is goyafm the url will if we want to get the list from a subfolder instead than from the. The url will be our base URL followed by /remote.php/dav/files/USERNAME/. Once the cURL option is set we can perform our GET request. We need to explicitly reset it calling the function without parameters when we don't need the option anymore. One thing to remember is that the effects of BE_Curl_Set_Option don't reset after a call. The BaseElements plugin function to do this isīE_Curl_Set_Option ( "CURLOPT_CUSTOMREQUEST" "PROPFIND" ) The option to set is called CURLOPT_CUSTOMREQUEST and we have to set it to the value PROPFIND. The docs indicate that we need to perform a PROFIND request: to do the we need to set a cURL option before calling our GET request. The first step in the process is to retrieve the list of files and folders hosted in our account.
Goya baseelements license password#
We simply pass our username and password with the Get the Files and Folders List The Nextcloud API provides only Basic Auth without any API keys or Token. If you're not familiar with cURL, it is a library used to transfer data using various protocols and it is used in the HTTP functions in the BaseElements plugin. The implementation of these web services are quite different from the ones we covered in the previous posts ( Dropbox, Zendesk and Mailchimp).įirst of all the format used for the response is not JSON but XML and in the case of the webDAV API we have to define a cURL option to retrieve the field list.
the Share API to share the files and folders.
the Provisioning API to manage the users.
the webDAV API to find files and folders.
Nextcloud has more than one API (with different implementations) and for our project we'll need 3 different services: The idea is the same: we want to share a folder or file in Nextcloud from within a FileMaker solution. I didn't know much about the Nextcloud API and despite the documentation being somehow fragmented, the interaction seemed possible using the BaseElements plugin. This integration was a request from a sponsor, who uses Nextcloud in a similar way to the Dropbox API example we posted recently.
Tumblr media
0 notes
loadrental744 · 4 years ago
Text
Actual Odbc Driver
Tumblr media
Troubleshooting
Mysql Odbc Driver Contact Php Software Listing (Page2). About Actual ODBC Driver for OpenBase Now you can access data from your OpenBase database using Microsoft Exceland FileMaker Pro. MySQL Connector/ODBC project is an ODBC driver for the MySQL database server.
Actual ODBC Driver for Access v.1.6 With the ODBC driver for Access, you can connect to Microsoft Access databases and import data directly into an Excel spreadsheet or a FileMaker database. There is no need for an intermediary Windows PC - this driver reads data from the database file.
Actual ODBC for Apple Silicon! Version 5.1 of the Actual ODBC Pack is now compatible with native Apple Silicon apps and MacOS Big Sur. Intel Macs and Rosetta are also supported. The Actual ODBC Pack installer is available from our website. How to Obtain Actual Technologies ODBC drivers allows Mac OS X users connect to enterprise databases using common desktop applications such as Microsoft Excel and FileMaker Pro. Create pivot tables, charts, and graphs from an Excel database via Microsoft's built-in support for ODBC queries. ODBC drivers support the Amazon Relational Database Service (RDS), making it easy to configure a cloud.
Problem
In V5R2 of iSeries Access for Windows V5R2 the ODBC driver's registered name has been changed to 'iSeries Access ODBC Driver'. This name change may impact some applications.
Resolving The Problem
Users of V5R2 iSeries Access for Windows may notice that the following ODBC driver names are registered: 'Client Access ODBC Driver (32-bit)' 'iSeries Access ODBC Driver' Both names represent the same driver. There is no functional difference between them. The Client Access ODBC Driver name is still registered to allow applications that use existing datasources (DSNs) or DSN-less connections to run without requiring changes. The preferred method for creating new datasources is to use the 'iSeries Access ODBC Driver' name; however, this is not required. Selecting either driver name creates a DSN with the new 'iSeries Access ODBC Driver' name. Existing ODBC User and System datasources (DSNs) that were created with Client Access are migrated automatically the first time the DSN is used. No action by the user is required. File DSNs are not migrated (even if edited). Although they can be used with V5R2 iSeries Access, future versions of iSeries Access may not support the old driver name. All File DSNs should be deleted and re-created. This information is also described in the Addendum to V5R2 readme.txt available on the iSeries Access Web site and in the OS/400 V5R2 Memorandum to Users. Programming Notes The older 'Client Access ODBC Driver (32-bit)' name is deprecated. Applications written to use DSN-less connections (the SQLDriverConnect API and the DRIVER connect string keyword) should be updated to use the 'iSeries Access ODBC Driver' name. A future version of iSeries Access will no longer register the Client Access driver name causing these applications to fail if they are not updated. This is described in the 'Addendum to V5R2 readme.txt': 'Be aware that in a future release, the former name of 'Client Access ODBC Driver (32-bit)' will be removed. If you use an application that uses a File DSN or DSN-less connection (one that specifies the DRIVER connection string keyword when connecting) you should consider changing your application to use the new name 'iSeries Access ODBC Driver'. Uninstall Notes If iSeries Access for Windows is removed, existing datasources are not changed. If an older version of Client Access is then installed, any datasources migrated to iSeries Access for Windows will fail to connect (see Note). The new or migrated datasources must be deleted and re-created or the cwbODBCreg tool can be used to restore the older 'Client Access ODBC Driver (32-bit)' name. The cwbODBCreg utility is included in V5R2 and is also available at ftp://ftp.software.ibm.com/as400/products/clientaccess/win32/files/odbc_tool/. To convert all datasources to V5R1 and earlier, run the tool with the following options: cwbODBCreg -name V5R1. Note: With the current version of the Microsoft driver manager, a failure will occur only if the DRIVER path and the ODBC Data Sources name are not correct. V5R2 iSeries Access alters both. In addition to the name change, the DRIVER path moved to the Windows system directory. This was done to enable future support for 64-bit versions of Windows. Because both values changed, most users encounter the error if they uninstall and restore a previous release. The unistall information is also described in the V5R2 Memorandum to Users.
(('Type':'MASTER','Line of Business':('code':'LOB08','label':'Cognitive Systems'),'Business Unit':('code':'BU054','label':'Systems w/TPS'),'Product':('code':'SWG60','label':'IBM i'),'Platform':(('code':'PF012','label':'IBM i')),'Version':'6.1.0'))
Document Information
Modified date: 18 December 2019
Display by: Relevance | Downloads | Name
Released: August 10, 2012 | Added: August 10, 2012 | Visits: 457
About Actual ODBC Driver for OpenBaseNow you can access data from your OpenBase database using Microsoft Exceland FileMaker Pro. With the Actual ODBC Driver for OpenBase, you can connect quickly and easily to your database. Unlike other solutions, this driver installs completely on your Mac -...
Platforms: Mac
License: DemoCost: $0.00 USDSize: 1.6 MBDownload (37): Actual ODBC Driver for OpenBase 1.3 Download
Added: November 15, 2010 | Visits: 1.760
MySQL Connector/ODBC project is an ODBC driver for the MySQL database server. MySQL is a multithreaded, multi-user SQL database management system (DBMS) which has, according to MySQL AB, more than 10 million installations. MySQL is owned and sponsored by a single for-profit firm, the Swedish...
Platforms: *nix
License: FreewareDownload (365): MySQL Connector/ODBC Download
Added: May 20, 2010 | Visits: 1.193
The OOB Client is an ODBC driver which communicates with the OOB Server. The OOB Server connects to an existing ODBC driver on the server machine. It does not need to be installed on the database server. The OOB is normally used to provide access to an ODBC driver you cannot obtain for the... Platforms: *nix
License: SharewareCost: $0.00 USDDownload (128): Easysoft ODBC-ODBC Bridge Download
Added: January 26, 2010 | Visits: 923
DBD::ODBC Perl module contains a ODBC Driver for DBI. SYNOPSIS use DBI; $dbh = DBI->connect(dbi:ODBC:DSN, user, password); Private DBD::ODBC Attributes odbc_more_results (applies to statement handle only!) Use this attribute to determine if there are more result sets available. SQL... Platforms: *nix
License: FreewareSize: 122.88 KBDownload (88): DBD::ODBC Download
Actual Odbc Driver
Added: August 09, 2010 | Visits: 896
MySQL Abstractor package contains PHP classes that implements a MySQL database abstraction layer. It provides several classes. There is one for establishing connections and executing SQL queries, another for composing and executing SELECT, INSERT, UPDATE and DELETE queries from a list of... Platforms: *nix
License: FreewareDownload (87): MySQL Abstractor Download
Added: January 25, 2010 | Visits: 1.008
The OpenLink ODBC Driver for Oracle (Express Edition) is a single component installed on a machine hosting ODBC compliant applications such as Microsoft Excel, 4th Dimension, Omnis Studio, DB Visualizer, DB Designer, etc. The OpenLink ODBC Driver for Oracle (Express Edition) is a multi-threaded... Platforms: Mac
Odbc Driver Install
License: DemoCost: $0.00 USDSize: 5.2 MBDownload (100): OpenLink ODBC Driver for Oracle Download
Released: September 14, 2012 | Added: September 14, 2012 | Visits: 900
RISE PHP for MySQL code generator The RISE PHP for MySQL code generator renders PHP source code for database access. The generated code implements the classes and methods corresponding to the information interfaces specified in the RISE model. This includes classes for database access and,... Platforms: Windows
License: FreewareDownload (46): RISE PHP for MySQL code generator Download
Added: May 13, 2013 | Visits: 700
PHP Tree Structure stored in MySQL database is a php script to store and manipulate tree structure in a mysql database, is a free PHP code generator.An example of a typical uses for this would be a web directory. Its important to note that the script and the table are meant only to... Platforms: PHP
License: FreewareSize: 10 KBDownload (30): PHP Tree Structure stored in MySQL database Download
Added: May 06, 2013 | Visits: 566
PHP MySQL databaser is a PHP script that can access and manipulate MySQL databases.Using PHP MySQL databaser can support connecting to a given MySQL database, running queries, executing INSERT queries from the given parameters, retrieving the list of tables, creating and dropping table. Platforms: PHP
License: FreewareSize: 10 KBDownload (29): PHP MySQL databaser Download
Added: March 04, 2010 | Visits: 1.188
Remote MySQL Query is a PHP class that can easily execute queries on a remote MySQL server using only HTTP. It works by accessing a PHP script on the remote web server that executes queries based on passed in URL parameters. The client passes a secret key to the remote script to prevent... Platforms: *nix
License: FreewareDownload (129): Remote MySQL Query Download
Added: January 25, 2010 | Visits: 692
High-Performance ODBC Drivers provide transparent access to remote databases from any ODBC-compliant application. Desktop Productivity Tools (i.e., Spreadsheets, Word Processors, Presentation Packages, Desktop Databases, Personal Organizers, etc.), Client-Server Application Development... Platforms: Mac
License: DemoCost: $0.00 USDSize: 2.4 MBDownload (87): OpenLink Lite ODBC Driver for MySQL 4.x Download
Added: January 25, 2010 | Visits: 673
High-Performance ODBC Drivers provide transparent access to remote databases from any ODBC-compliant application. Desktop Productivity Tools (i.e., Spreadsheets, Word Processors, Presentation Packages, Desktop Databases, Personal Organizers, etc.), Client-Server Application Development... Platforms: Mac
License: DemoCost: $0.00 USDSize: 2.4 MBDownload (91): OpenLink Lite ODBC Driver for MySQL 5.x Download
Added: January 25, 2010 | Visits: 629
Tumblr media
High-Performance ODBC Drivers provide transparent access to remote databases from any ODBC-compliant application. Desktop Productivity Tools (i.e., Spreadsheets, Word Processors, Presentation Packages, Desktop Databases, Personal Organizers, etc.), Client-Server Application Development... Platforms: Mac
License: DemoCost: $0.00 USDSize: 2.4 MBDownload (87): OpenLink Lite ODBC Driver for MySQL 3.x Download
Added: May 10, 2013 | Visits: 570
Remote MySql Manager is a PHP code to manage a MySql database over the web. It allows you to Add/Drop databases and tables, Insert/Update/Delete records, Enter your own SQL query, Import text files into a table, Export tables as plain text. You do not need configuration files or installation... Platforms: Windows, Mac, *nix, PHP, BSD Solaris
License: FreewareDownload (38): Remote MySql Manager Download
Added: August 15, 2008 | Visits: 3.660
Do a conversion from Excel to MySQL or MySQL to Excel free of MySQL query knowledge. This converter uses Excel as a front end to your MySQL database. The MySQL ODBC driver is used. Results can be seen and modified with popular MySQL php admin tools. Platforms: Windows
License: SharewareCost: $9.82 USDSize: 5.7 MBDownload (373): Excel to MySQL Import Download
Added: April 06, 2013 | Visits: 349
Tumblr media
MySql DbBackup is a PHP script that will backup your local/remote MySql DB using mysqldump.Features : Backup rotation, bzip2/gzip compression, gpg encryption, FTP file sending, Email file sending, Email repporting, log... and a lot of options to configure it. Platforms: PHP
License: FreewareSize: 10 KBDownload (27): MySql DbBackup for Scripts Download
Actual Odbc Driver Update
Added: May 12, 2013 | Visits: 408
mySQL/HTML-Client is a Web interface to a mySQL database written in PHP. It allows you to display and query database. Platforms: PHP
License: FreewareSize: 40.96 KBDownload (28): MySQL/HTML-Client Download
Added: August 05, 2008 | Visits: 1.564
AnySQL Maestro is a unique FREEWARE for administering any database engine (SQL Server, Oracle, MySQL, MS Access, etc.) which is accessible via ODBC driver or OLE DB provider.The application provides you with easy-to-use GUI, which allows you to perform common database operations easy and fast.... Platforms: Windows
License: FreewareSize: 11.6 KBDownload (192): AnySQL Maestro Download
High-Performance ODBC Drivers provide transparent access to remote databases from any ODBC-compliant application. Desktop Productivity Tools (i.e., Spreadsheets, Word Processors, Presentation Packages, Desktop Databases, Personal Organizers, etc.), Client-Server Application Development... Platforms: Mac
License: DemoCost: $0.00 USDSize: 2.4 MBDownload (90): OpenLink Lite ODBC Driver for PostgreSQL Download
Actual Odbc Sql Server Driver For Mac
High-Performance ODBC Drivers provide transparent access to remote databases from any ODBC-compliant application. Desktop Productivity Tools (i.e., Spreadsheets, Word Processors, Presentation Packages, Desktop Databases, Personal Organizers, etc.), Client-Server Application Development... Platforms: Mac
License: DemoCost: $0.00 USDSize: 2.4 MBDownload (86): OpenLink Lite ODBC Driver for SQL Server (TDS) Download
Tumblr media
0 notes
jsfmp · 6 years ago
Text
A Recap of the 2019 CWP User Group
Tumblr media
More presenters!
With some last-minute volunteering at this year’s CWP User Group at FileMaker DevCon (our 13th annual!), we had a record-high seven people share with the group.*
We saw:
Joel Shapiro @jsfmp (that's me) - details below…
Mark DeNyse @mdenyse, who demonstrated how, with his fmPDA, you can change just one line of legacy FX.php code to use the FileMaker Data API with a new FX.php DataSource class. He then showed techniques for using the Data API to store data passed to a SmartThings webhook, and also demonstrated how to pull weather data from multiple sources (Ambient and Weather Underground) with cURL and the Data API to display in an iOS SDK app. 
Charles Delfs @mrdelfs, who talked about how they incorporate testing at four levels in their CWP service. He demoed UX pre-build testing, automated CWP testing, and FMP testing, using fullstory and UI-licious. 
Steve Winter @steveWinterNZ, who showed us how he uses database abstraction to decouple an app from its underlying database. Using Doctrine and Symfony he demoed how he can change one line of code to switch between the FileMaker PHP API and the Data API, or potentially any other database connection. You can see his slides and resources on his blog
Mike Beargie @MikeBeargie, who showed us some work he's been doing with Laravel Nova.
David Nahodyl @bluefeathergrp, who showed off a clever mapping solution where they’re caching data as JSON in Amazon S3 instead of pulling it directly from the FileMaker database in order to both improve performance and reduce Data API usage. You can see the demo, using customer/customer as the username and password.
Lui de La Parra @lui_dog, who shared his fms-api-client and node-red-contrib-filemaker, along with Node-RED.  “fms-api-client” is a FileMaker Data API client designed to allow easier interaction with a FileMaker database from a web environment. This client abstracts the FileMaker 17 & 18 Data API into class based methods.  “node-red-contrib-filemaker” uses “fms-api-client” to connect via the FileMaker Data API to FileMaker Server and provide FileMaker nodes to Node-RED. Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways. It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.
My turn…
I started out mentioning a couple recent items that all CWP developers should be aware of:
FileMaker Server 17.0.3+ now installs PHP 7, but the PHP API isn’t compatible
For the first time since the FileMaker PHP API came out with FileMaker 9, the FMS installer now installs PHP 7.x.  Unfortunately, the API itself has not been updated to be PHP 7-compatible.  If you haven’t already updated your version of PHP to 7.x, the easiest way to have your CWP site work with PHP 7 is to use Steve Winter’s PHP API modification.  It’s a simple switch of the original FileMaker.php file and FileMaker directory to the same-named versions in Steve’s download. Note: You may separately need to modify your own PHP code to be PHP 7-compatible
Tumblr media
Changes to Java in FileMaker Server 17.0.3+
Due to changes in Oracle’s licensing of Java 8, using the Web Publishing Engine (WPE) for either the XML/PHP API or WebDirect in FileMaker Server 17 and 18 now requires us to either purchase an Oracle Java SE Subscription or use a free open source license of Java 8 (OpenJDK 8). Note: The Data API does not use the WPE and so is not impacted by this change.
Mike Duncan @SoliantMike has written a blog post that nicely describes how to deal with the change.
Tumblr media
Who’s using the Data API in production CWP sites?
I then took a brief poll, for my own curiosity, to see how many people are using the Data API in their CWP sites.  Very unscientifically… lots of people are(!) Some reported using fmPDA, some fmREST, and some RESTfm which now supports the Data API (yes, there’s fmREST & RESTfm).  Presumably other people are connecting to the API in other ways, but they weren’t sharin’ :-P.
Scrollbars made visible on Mac and iOS — via CSS!
I’ve long been frustrated by the macOS/OS X and iOS default setting that hides scrollbars except when actively scrolling.  I think this is Bad UX, as users often won’t realize that there’s more content for them to see.  Fortunately, scrollbars can now easily be added using CSS (hurrah!)  Technically, the CSS specification is about styling the scrollbar—which on Windows (where scrollbars always display) means you can make them look nicer—but to me the best part is that we can now make scrollbars always visible on Mac/iOS.
See the Pen xxKRgEB by joelshapiro (@joelshapiro) on CodePen.
According to Can I Use, browser support is now good (with the inclusion of the pseudo-elements). Even with no/limited support in Edge & IE, Windows users still get the default scrollbars; they’re just not styled.
Tumblr media
Quick tip: Emmet plugin
Just a quick mention of the handy Emmet plugin that can be added to many text editors and IDEs.  It’s installed by default in VS Code (my editor of choice).
Emmet takes the snippets idea to a whole new level: you can type CSS-like expressions that can be dynamically parsed, and produce output depending on what you type in the abbreviation. Emmet is developed and optimised for web-developers whose workflow depends on HTML/XML and CSS, but can be used with programming languages too.
So typing something like:
div.wrapper>h1#main+p
will produce:
<div class="wrapper"> <h1 id="main"></h1> <p></p> </div>
Tumblr media
There’s a handy cheat sheet on their site.
And if I may…
*It really was great to have so many eager presenters, especially since just the day before I thought there’d only be three besides myself and we might end early.  My request for you all is: Please consider sharing something with the group at next year's #ClarisEngage… but puh-leeze let me know in advance so I can plan (sleep) better.
I generally get notified about our room in the Spring and then I tweet about it and post about it in the FM Community.  Please let me know you'd like to share as soon as you can after that.  Thanks! :-)
0 notes
ictbaneninnederland · 7 years ago
Text
Junior Ruby on Rails ontwikkelaar bij Kempen Automatisering
Wij zijn echte applicatie bouwers gebruikmakend van een breed scala technologieën: HTML5, Bootstrap, Ruby, Ruby on Rails, FileMaker, PHP, API's, MySQL, Postgres, Amazon, VMware vSphere 6. Wij werken niet op basis van detachering maar op basis van een vast intern project team met allen een eigen specialisme. Een technisch team ‘pur sang’, waarbij iedereen binnen Kempen Automatisering programmeert. Je werkt aan een continue wisselende groep projecten, met name voor middelgrote bedrijven en ondernemers die op zoek zijn naar mooie software oplossingen voor het professionaliseren van hun bedrijf. Werkzaamheden• Ontwikkelen van Webapps• Uitbreiden van Webapps• Integratie met API's• Heroku DevOps Waar kom je te werken?Ons kantoor is net zo open als de directie. Er heerst een informele werksfeer, de lijnen zijn kort en er is veel ruimte voor eigen inbreng. Het bedrijf bestaat sinds 2000 en is klein, dynamisch en collegiaal. We hanteren flexibele werktijden en bieden een goed salaris. http://dlvr.it/Q9Sd9M
0 notes
filemakerexperts · 3 months ago
Text
Sequentielle Suche mit FileMaker und PHP
Manchmal sind es nicht die großen Frameworks oder hochkomplexen API-Integrationen, die den Unterschied machen, sondern ein bewusst einfacher, robuster Ansatz, der sich nahtlos in vorhandene Workflows integriert. Genau das war der Ausgangspunkt für eine kleine aber wirkungsvolle Lösung, die FileMaker mit einem PHP-basierten Webinterface verbindet – mit dem Ziel, eine sequentielle Suche über eine größere Datenmenge performant und flexibel umzusetzen. Das derzeitige Problem beim Kunden, vor Jahren habe ich eine Sequentielle Suche nativ in FileMaker umgesetzt. Die übliche Vorgehensweise, ein Script sucht bei jedem Tastenanschlag, genutzt werden alle Felder die in der Schnellsuche eingeschlossen sind. Über die Jahre wuchs der Datenbestand, es wurden Felder innerhalb von Ausschnitten erfasst. Es musste so kommen, der Kunde konnte die Suche kaum mehr nutzen, tippen, warten, tippen. Sehr unschön und langsam. Dann kam mir im Zuge einer Listenansicht, in die ich eine Suche integriert habe, die Idee. FileMaker überträgt per -Aus URL einfügen- Tabellendaten an ein PHP-Script. Im WebViewer wird dann die Tabelle angezeigt, nebst einem Suchfeld. Also frisch ans Werk gemacht und schnell festgestellt, die Felder in Variablen zu verpacken, macht in der Menge keinen Spaß. Also das ganze per Schleife, Feldnamen holen, die Werte dazu sammeln. In Schleife, ist das gut machbar, aber trotzdem ein nicht unerheblicher Zeitaufwand. Dann eine Eingebung, exportiere die Tabelle und verarbeite die Daten direkt auf dem Server per PHP. Vorgehen: FileMaker exportiert eine strukturierte Datenmenge als CSV – diese Datei wird im Hintergrund automatisch an ein kleines PHP-Script übermittelt. Dort wird sie interpretiert, analysiert und in einer visuellen Oberfläche dargestellt, über die eine freie Volltextsuche möglich ist. Der Clou: Mit jedem Tastendruck wird die Ergebnisliste dynamisch reduziert – und bei Bedarf lassen sich über die Enter-Taste direkt Projektnummern an ein FileMaker-Script zurückgeben, das dann wiederum die interne Detailansicht aktualisiert. Ganz ohne Datenbankabfragen im Webserver, ganz ohne MySQL, Redis oder externe Services. Die PHP-Logik bleibt dabei angenehm überschaubar. Ein Beispiel für das Parsen und Darstellen der Daten sieht so aus:
<?php $csvData = []; $data = file_get_contents("php://input"); if ($data && strlen($data) > 0) { $lines = preg_split('/\r\n|\r|\n/', $data); foreach ($lines as $line) { if (trim($line) !== "") { $csvData[] = str_getcsv($line, "\t"); // Tab-getrennt } } if (!empty($csvData) && empty(array_filter(end($csvData)))) { array_pop($csvData); } } $spaltenIndizes = range(0, count($csvData[0] ?? []) - 1); ?>
In der Darstellung im WebViewer werden alle Datensätze tabellarisch angezeigt. Der Clou kommt mit JavaScript: Dort wird bei jeder Eingabe automatisch geprüft, welche Zeilen noch zum aktuellen Suchbegriff passen. Zusätzlich hebt ein kleiner Style-Block die passenden Zellen farblich hervor, um die Treffer visuell zu unterstützen. Und weil alles clientseitig passiert, bleibt es schnell – auch bei mehreren tausend Einträgen. Besonders elegant wirkt die Integration in FileMaker: Die Projektnummern der sichtbaren Zeilen werden bei einem Enter-Klick gesammelt und per fmp://-URL an ein FileMaker-Script übergeben. Diese Direktverbindung ermöglicht, das Webinterface wie eine native Erweiterung der Datenbank zu nutzen – ohne Performanceverlust, ohne Redundanz, ohne Hürden.
document.getElementById("searchInput").addEventListener("keypress", function(event) { if (event.key === "Enter") { event.preventDefault(); const rows = document.querySelectorAll("#csvTable tbody tr:not(.hide)"); const ids = []; rows.forEach(row => { const id = row.querySelectorAll("td")[0]?.textContent.trim(); // Erste Spalte = ID if (id) ids.push(id); }); if (ids.length > 0) { const param = encodeURIComponent(ids.join("|")); const url = `fmp://$/AVAGmbH?script=Projekt_LIST_Suche_PHP&param=${param}`; window.location.href = url; } } });
Nach dem Klick, startet das FM-Script. Wir holen uns die ID,s nach üblicher Vorgangsweise und suchen in Schleife alle ID,s zusammen. In dem Zug, wird natürlich auch das Suchfenster in FileMaker geschlossen. Diese Form der sequentiellen Suche hat sich im Test als stabil und pflegeleicht erwiesen – gerade in Szenarien, in denen FileMaker allein bei umfangreichen Datensätzen an die Grenzen kommt, etwa bei mehrdimensionalen Suchen über unstrukturierte Felder oder bei extern generierten Listen. Und auch wenn es kein High-End-AI-Suchcluster ist: Die Lösung hat Charme. Weil sie genau das tut, was sie soll. Weil sie den Workflow nicht verbiegt, sondern erweitert. Und weil sie etwas bietet, das man oft zu selten hat: unmittelbare Rückmeldung und Kontrolle über den gesamten Prozess. Jetzt wird nur noch ein wenig mit CSS das ganze verschönt, dann kann der Kunde damit arbeiten.
0 notes
filemakerexperts · 5 months ago
Text
Warum FileMaker? Die Vorteile einer Entwicklung mit der flexiblen Plattform
Die Anforderungen an moderne Softwarelösungen wachsen stetig: Daten müssen jederzeit und überall verfügbar sein, Anwendungen müssen sich nahtlos in bestehende Systeme einfügen, und die Entwicklung soll schnell und kosteneffizient bleiben. Hier kommt FileMaker ins Spiel – eine Plattform, die diese Herausforderungen mit Leichtigkeit meistert. In diesem Beitrag beleuchten wir die wichtigsten Vorteile der Entwicklung mit FileMaker, von der Geschwindigkeit über die Flexibilität bis hin zu den mobilen Möglichkeiten. 1. Schnelle Entwicklungszeit Mit FileMaker können maßgeschneiderte Lösungen in kürzester Zeit erstellt werden – ideal für Unternehmen, die schnell reagieren müssen. • Low-Code-Ansatz: FileMaker bietet eine visuelle Entwicklungsumgebung mit Drag-and-Drop-Tools, sodass viele Funktionen ohne tiefes Programmierwissen umgesetzt werden können. • Schnelles Prototyping: Änderungen oder Erweiterungen können direkt getestet und umgesetzt werden, wodurch sich Entwicklungszyklen erheblich verkürzen. • Integrierte Funktionen: Viele Standardanforderungen wie Formulare, Filter oder Berichte sind bereits vorhanden.
Tumblr media
2. Flexibilität in der Entwicklung FileMaker passt sich problemlos an verschiedene Szenarien an und ist für viele Branchen einsetzbar. • Vielseitige Einsatzmöglichkeiten: Ob CRM, Inventarverwaltung, Terminplanung oder spezifische Geschäftsprozesse – mit FileMaker lässt sich fast jedes Szenario umsetzen. • Individuelles Design: Benutzeroberflächen können exakt an die Bedürfnisse des Unternehmens angepasst werden. • Plattformübergreifend: FileMaker-Lösungen funktionieren auf Mac, Windows, iOS und im Web. 3. Mobile Nutzung und WebDirect Die mobilen Möglichkeiten von FileMaker machen die Plattform besonders attraktiv für Unternehmen mit Außendienst oder verteilten Teams. • FileMaker Go: Mit der App für iOS-Geräte (iPhone und iPad) können Datenbanken unterwegs genutzt werden – ideal für Außendienstmitarbeiter oder Techniker. • WebDirect: FileMaker-Anwendungen können direkt im Browser genutzt werden, ohne dass eine spezielle Software erforderlich ist. • Synchronisation in Echtzeit: Änderungen werden sofort synchronisiert, sodass alle Benutzer immer auf dem neuesten Stand sind. 4. Nahtlose Schnittstellen und PHP-Integration Die Möglichkeiten, FileMaker mit anderen Systemen zu verbinden, sind nahezu unbegrenzt. • APIs und Webhooks: Über RESTful APIs können Daten zwischen FileMaker und anderen Plattformen wie SAP, Salesforce oder Google Sheets ausgetauscht werden. • PHP und Custom Web Publishing: Mit PHP lassen sich maßgeschneiderte Webanwendungen entwickeln, die direkt auf die FileMaker-Datenbank zugreifen. • SQL-Unterstützung: FileMaker kann externe SQL-Datenbanken integrieren und als zentrale Schnittstelle dienen. 5. Mehrbenutzerfreundlichkeit FileMaker ist von Grund auf für die Zusammenarbeit in Teams ausgelegt. • Zentrale Datenbank: Alle Benutzer greifen auf eine gemeinsame Datenbank zu, entweder lokal oder in der Cloud. • Rechteverwaltung: Unterschiedliche Rollen und Berechtigungen sorgen für Sicherheit und Kontrolle. • Echtzeit-Zusammenarbeit: Änderungen werden sofort synchronisiert, sodass alle Benutzer stets die aktuellen Daten sehen.
Tumblr media
6. Sicherheit und Zuverlässigkeit FileMaker bietet umfassende Sicherheitsfunktionen, die den Schutz sensibler Daten garantieren. • SSL-Verschlüsselung: Datenübertragungen sind sicher, sowohl im lokalen Netzwerk als auch in der Cloud. • Benutzerverwaltung: Zugriffsrechte können bis auf Feldebene granular definiert werden. • Regelmäßige Updates: FileMaker wird kontinuierlich weiterentwickelt und bietet regelmäßige Sicherheitsupdates. 7. Kosteneffizienz Die Entwicklung mit FileMaker ist oft günstiger als mit anderen Plattformen: • Weniger Entwicklungszeit: Schnelle Umsetzung reduziert die Kosten erheblich. • Flexible Lizenzmodelle: FileMaker bietet Lizenzen für kleine Teams bis hin zu großen Unternehmen. • Geringe Wartungskosten: Änderungen und Erweiterungen können schnell und kostengünstig umgesetzt werden. 8. Stabilität und Zukunftssicherheit FileMaker ist eine etablierte Plattform, die sich über Jahrzehnte bewährt hat. • Regelmäßige Updates: Neue Funktionen und Verbesserungen werden regelmäßig veröffentlicht. • Rückwärtskompatibilität: Alte Lösungen lassen sich oft problemlos in neuere Versionen migrieren. • Große Entwickler-Community: Dank der aktiven Community gibt es zahlreiche Ressourcen und Unterstützung. Fazit FileMaker bietet eine flexible, schnelle und mobile Plattform, die Unternehmen dabei unterstützt, maßgeschneiderte Lösungen zu entwickeln. Ob Sie FileMaker Go für den Außendienst nutzen, Daten in WebDirect verfügbar machen oder über PHP Schnittstellen integrieren – die Möglichkeiten sind nahezu unbegrenzt. Möchten Sie mehr über die Entwicklung mit FileMaker erfahren oder Ihre eigene Lösung umsetzen? Kontaktieren Sie uns – wir helfen Ihnen.
0 notes
filemakerexperts · 5 months ago
Text
Geodaten in FileMaker integrieren – Einfacher geht’s kaum
Häufig sprechen wir über Geodaten – doch wie bekommen wir diese eigentlich in unsere FileMaker-Datenbank? In vielen meiner kurzen Anrisse, geht es immer wieder um Geo-Daten. Wir übertragen sie in Richtung Google-Maps, in verschiedensten Formen. Nur wir benötigen diese im ersten Schritt. Wenn Sie eine Adresse in Latitude (Breitengrad) und Longitude (Längengrad) umwandeln möchten, bietet sich die Nutzung der Google Geocoding API an. Aber seien wir ehrlich: Niemand hat Lust, sich mit komplexen JSON-Daten oder unnötigem Ballast herumzuschlagen. Darum haben wir uns eine besonders „faule“, aber effektive Lösung überlegt: Wir lassen uns einfach nur die beiden benötigten Geodaten ausgeben – fertig. Ich erhalte eine Variable mit zwei Elementen. Diese kann ich dann in FileMaker mit zwei Scriptschritten weiterverarbeiten. Warum Geodaten in FileMaker nutzen? Geodaten können in einer Datenbank unglaublich vielseitig eingesetzt werden: • Visualisierung: Stellen Sie Adressen als Marker in Google Maps dar. • Navigation: Berechnen Sie Routen und Entfernungen. • Datenanalyse: Prüfen Sie, welche Kunden sich in einem bestimmten Radius befinden. Die Herausforderung? FileMaker arbeitet am besten mit einfachen, strukturierten Daten. Darum konzentrieren wir uns auf die Essenz: Breitengrad und Längengrad. Die „faule“ Lösung: Minimalistische Datenabfrage Statt alle Details wie die formattierte Adresse oder die Geometrie-Typen der Google Geocoding API zu verarbeiten, nutzen wir ein PHP-Skript, das uns genau die zwei benötigten Werte zurückgibt: Latitude und Longitude, getrennt durch einen Zeilenumbruch. So lassen sich die Daten in FileMaker besonders einfach integrieren. Mein Beispiel:
<?php // API-Key hier einfügen $apiKey = "hier der Goggle API-Key"; // Parameter prüfen if (isset($_GET['params'])) { $params = explode('|', $_GET['params']); // Erwartet: Straße|PLZ|Stadt if (count($params) >= 3) { $street = trim($params[0]); // Straße und Hausnummer $city = trim($params[2]); // Stadt $zip = trim($params[1]); // Postleitzahl $country = isset($params[3]) ? trim($params[3]) : "DE"; // Standard: Deutschland // Adresse zusammenstellen $addressComponents = array_filter([$street, $city, $zip, $country]); // Entfernt leere Werte $address = implode(',', $addressComponents); $url = "[maps.googleapis.com/maps/api/...](https://maps.googleapis.com/maps/api/geocode/json?address=)" . urlencode($address) . "&key={$apiKey}"; // API-Anfrage senden $response = file_get_contents($url); // Prüfen, ob die Antwort erfolgreich war if ($response === false) { echo "Fehler beim Abrufen der API\n"; exit; } // API-Antwort decodieren $data = json_decode($response, true); // Ergebnisse prüfen if ($data['status'] === "OK" && isset($data['results'][0]['geometry']['location'])) { $location = $data['results'][0]['geometry']['location']; // Nur Latitude und Longitude ausgeben, getrennt durch Zeilenumbruch echo $location['lat'] . "\n" . $location['lng']; } else { echo "Keine Geodaten gefunden\n"; } } else { echo "Ungültiges Format. Erwartet: Straße|PLZ|Stadt\n"; } } else { echo "Parameter 'params' fehlt. Erwartet: Straße|PLZ|Stadt\n"; }
Das ganze sind 45 Zeilen Code. In FileMaker hätte ich die JSON-Rückgabe erstmal umständlich zerlegen müssen. Über diese Form bekomme ich einen Parameter mit z.B. diesen Werten. 52.6033116 13.3534074 Dafür habe ich lediglich die Straße, PLZ und Stadt übertragen. Natürlich auch das auf ganz leichte Weise. [ihr-server.de/geocode.p...](https://ihr-server.de/geocode.php?params=Senftenberger) Ring 83|13435|Berlin Getrennt durch einen Pipe, werden die Daten in eine FileMaker-Variable geschrieben. Über den FM-Befehl -aus URL einfügen- bekomme ich dann die beiten gewünschten Werte zurück und kann sie einfach in zwei FileMaker Felder schreiben. Mein Fazit, manchmal lohnt es sich, Dinge einfach zu halten – und unsere „faule“ Lösung ist das beste Beispiel dafür. Mit nur einem Skript und einem einfachen Aufruf können Sie Geodaten in FileMaker integrieren und so Ihre Datenbank erweitern. Probieren Sie es aus und lassen Sie Ihre Adressen lebendig werden!
Tumblr media
0 notes
filemakerexperts · 5 months ago
Text
FileMaker & PHP – Integration, Möglichkeiten und die Evolution von Version 12 bis heute (leicht wehmütig)
Die Integration von FileMaker-Datenbanken mit PHP war lange Zeit kein zentraler Bestandteil vieler Webentwicklungsprojekte. Doch die Tools und Technologien, die hierfür zur Verfügung stehen, haben sich über die Jahre drastisch verändert. In diesem Beitrag werfen wir einen detaillierten Blick darauf, wie sich die Möglichkeiten seit FileMaker 17 weiterentwickelt haben und welche Vorteile die modernen Ansätze bieten. Dabei gehen wir auf Scriptaufrufe, Parameterübergaben und Unterschiede zwischen älteren und neuen Methoden ein. Wie bin ich darauf gekommen, diesen kleinen Vergleich zu ziehen. Mir ist ein uraltes Projekt aus FileMaker 13 Zeiten wieder in die Hände gefallen. Ich hatte noch ein Backup in der iCloud gefunden. Zu dieser Zeit nutzte ich diese gerne um Daten zu sichern. Damals bauten wir das Backend in FileMaker, über IWP wurden die Daten im Webbrowser Teilnehmern der Semicon zur Verfügung gestellt. FileMaker diente als Klient am Counter und im Browser für Anmeldung, Kartenzahlung etc. Es war eine Katastrophe, was für ein Geraffel. Mehrere 1000 Zugriffe pro Stunde zwangen den Server immer wieder in die Knie. Aber wir haben sofort beschlossen, das geht im nächsten Jahr so nicht noch einmal. Ich nutze ab diesem Moment PHP und FileMaker in Kombination. Bis heute, für mich die perfekte Symbiose zweier Systeme. 1. Früher: FileMaker PHP API (bis FileMaker 17) Vor der Einführung der FileMaker Data API (ab Version 17) war die FileMaker PHP API die Standardlösung, um eine Verbindung zwischen einer FileMaker-Datenbank und einer PHP-basierten Anwendung herzustellen. Diese API war eine PHP-Bibliothek, die speziell für FileMaker entwickelt wurde und direkt mit der Web Publishing Engine (WPE) des FileMaker Servers interagierte. Merkmale der FileMaker PHP API • Eigene Klassenstruktur: Die API stellte Klassen wie FileMaker, FileMaker_Layout, und FileMaker_Command_Find bereit. • Datenabruf: Abfragen wurden durch spezielle Methoden ausgeführt. Ergebnisse kamen als serialisierte PHP-Arrays zurück. • Skriptausführung: FileMaker-Skripte konnten durch die Methode setScript() aufgerufen werden. • Beschränkt auf WPE: Die WPE musste auf dem FileMaker Server aktiviert sein, um die PHP API zu verwenden. Mal ein kleines Beispiel:
<?php $fm = new FileMaker('DeineDatenbank', 'localhost', 'benutzername', 'passwort'); $layout = $fm->getLayout('DeinLayout'); $request = $fm->newFindCommand($layout); $request->addFindCriterion('Feldname', 'Wert'); $request->setScript('Skriptname', 'Parameterwert'); // Skript und Parameter setzen $result = $request->execute(); if (FileMaker::isError($result)) { echo 'Fehler: ' . $result->getMessage(); } else { echo 'Skript erfolgreich ausgeführt.'; } ?>
Einschränkungen • Die API war schwergewichtig und teilweise langsam. • Abhängigkeit von der WPE machte sie weniger flexibel. • Kein modernes JSON-Format, sondern serialisierte Arrays. • Abkündigung mit der Einführung der FileMaker Data API. Aber es hatte auch was für sich. In Gedanken bin ich immer dem FileMaker nahe geblieben. Layouts, Tabellen, Script-Namen. Als wenn ich mit FileMaker entwickeln würde, nur mit reinem Quellcode. 2. Heute: FileMaker Data API (ab FileMaker 17) Die Einführung der FileMaker Data API markierte einen Wendepunkt in der Integration von FileMaker-Daten mit externen Anwendungen. Die neue REST-basierte API macht es einfacher, FileMaker-Daten mit Standard-HTTP-Technologien zu verwalten. Merkmale der FileMaker Data API • RESTful Architektur: Kommunikation erfolgt über HTTP-Methoden wie GET, POST, PATCH und DELETE. • JSON-Datenformat: Anfragen und Antworten erfolgen in leicht verständlichem JSON. • Skriptausführung: Skripte können direkt über Parameter in der Anfrage ausgeführt werden. • Plattformunabhängig: Kein PHP-Modul erforderlich, funktioniert mit jedem HTTP-Client. Skriptausführung mit der Data API Die Data API ermöglicht die Ausführung von FileMaker-Skripten direkt während eines HTTP-Requests. Parameter können bequem als JSON übergeben werden. Beispiel Heute:
/ Funktion zum Starten des FileMaker-Scripts function startFileMakerScript(orderNumber) { if (!orderNumber || orderNumber === "Keine") { alert("Keine gültige Auftragsnummer vorhanden."); return; } const fileMakerScriptUrl = `fmp://$/DeineDatenbank?script=DeinScript&param=${encodeURIComponent(orderNumber)}`; console.log(`Starte FileMaker-Script mit URL: ${fileMakerScriptUrl}`); window.open(fileMakerScriptUrl, '_blank'); } if (!employees || employees.length === 0) { alert("Keine passenden Mitarbeiter gefunden."); return; }
Vorteile der Data API • Geschwindigkeit: Die API ist schneller und effizienter als die alte PHP API. • Flexibilität: Funktioniert mit jeder Programmiersprache und nicht nur mit PHP. • Standardkonformität: Nutzung moderner Webstandards (JSON, REST). • Skalierbarkeit: Unterstützt größere Datenmengen und parallele Anfragen. Fazit: Warum auf die Data API setzen? Die Data API bietet eine deutlich modernere, schnellere und flexiblere Möglichkeit, mit FileMaker-Daten zu arbeiten. Für neue Projekte ist sie der klare Favorit, da sie standardisierte Technologien nutzt und unabhängig von einer spezifischen Programmiersprache ist. Es macht auch unheimlichen Spaß, FileMaker Schwächen durch HTML/PHP/Java-Script zu kompensieren. Siehe meinem Beitrag zum Thema Portale innerhalb von FileMaker Portalen anzeigen.
Tumblr media
Ein altes Bild zu diesem Projekt. Semicon 2013 oder 2014
0 notes
filemakerexperts · 5 months ago
Text
Mitarbeiterzuordnung: Ein PHP-basiertes Tool zur Visualisierung und Priorisierung
Dieses Projekt kombiniert PHP, die Haversine-Formel und die Google Maps API, um die besten Mitarbeiter für einen Unterstützungsantrag basierend auf Standort und Verfügbarkeit auszuwählen. Das Ergebnis wird auf einer interaktiven Karte dargestellt, und eine Mitarbeiterliste zeigt alle relevanten Details wie Entfernung und Priorität. Der Grund, viele Mitarbeiter sind bei unterschiedlichen Kunden im Einsatz. Es kann aber notwendig sein, das ein zweiter oder dritter Mitarbeiter für diesen Einsatz benötigt werden. Schwierig die Mitarbeiter aus dem Kopf heraus zuordnen zu wollen. Überblick Unser Ziel ist es, ein System zu erstellen, das: • Mitarbeiter basierend auf Entfernung und zeitlicher Verfügbarkeit priorisiert. • Standorte auf einer Karte visualisiert. • Überlappende Standorte automatisch verschiebt, um sie sichtbar zu machen. • Eine übersichtliche Mitarbeiterliste generiert. PHP: Entfernung und Datenverarbeitung Im folgenden PHP-Skript berechnen wir die Entfernung zwischen Standorten mit der Haversine-Formel, filtern die Mitarbeiter und senden die Daten an eine KI-Analyse.
<?php // Dein API-Schlüssel (ersetzen, wenn nötig) $apiKey = 'GOOGLE_MAPS_KEY'; $serviceKey = 'DEIN_KEY_FÜR_DIE_KI'; // Mein API-Key // Daten von FileMaker empfangen $rawData = $_GET['data'] ?? ''; // Haversine-Formel zur Berechnung der Entfernung function haversine($lat1, $lng1, $lat2, $lng2) { $earthRadius = 6371; // Radius der Erde in Kilometern $dLat = deg2rad($lat2 - $lat1); $dLng = deg2rad($lng2 - $lng1); $a = sin($dLat / 2) * sin($dLat / 2) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * sin($dLng / 2) * sin($dLng / 2); $c = 2 * atan2(sqrt($a), sqrt(1 - $a)); return $earthRadius * $c; } // Daten parsen $employees = explode('|', $rawData); // Mitarbeiter sind durch "|" getrennt $parsedData = []; foreach ($employees as $employee) { $fields = explode(',', $employee); // Felder durch "," getrennt if (count($fields) === 5) { $parsedData[] = [ 'name' => $fields[0], 'lat' => (float)$fields[1], 'lng' => (float)$fields[2], 'startTime' => $fields[3], 'endTime' => $fields[4], ]; } } // Wenn keine gültigen Daten vorhanden sind if (empty($parsedData)) { die("Keine gültigen Mitarbeiterdaten empfangen."); } // Der Mitarbeiter, der Unterstützung benötigt $supportRequest = $parsedData[0]; $remainingEmployees = array_slice($parsedData, 1); // Entfernung berechnen und in das Array hinzufügen foreach ($remainingEmployees as &$employee) { $employee['distance'] = round(haversine( $supportRequest['lat'], $supportRequest['lng'], $employee['lat'], $employee['lng'] ), 2); } // Anfrage an KI zur Analyse senden $payload = [ 'supportRequest' => $supportRequest, 'employees' => $remainingEmployees, ]; // Die Anfrage an die OpenAI-API bleibt unverändert und liefert die Ergebnisse // JSON-Analyse bleibt wie im Skript ?>
Visualisierung mit Google Maps API Hier zeigen wir, wie die Ergebnisse visualisiert werden, einschließlich der dynamischen Verschiebung überlappender Marker und einer dynamischen Mitarbeiterliste.
<script> function initMap() { const map = new google.maps.Map(document.getElementById('map'), { zoom: 10, center: { lat: <?php echo $supportRequest['lat']; ?>, lng: <?php echo $supportRequest['lng']; ?> }, }); const employees = <?php echo json_encode($analysisResult); ?>; // Unterstützungsmarker hinzufügen new google.maps.Marker({ position: { lat: <?php echo $supportRequest['lat']; ?>, lng: <?php echo $supportRequest['lng']; ?> }, map: map, title: "Unterstützungsantrag", }); // Mitarbeiter hinzufügen const OFFSET_DISTANCE = 0.001; const seenLocations = new Map(); employees.forEach((employee) => { let key = `${employee.lat},${employee.lng}`; if (seenLocations.has(key)) { const offset = seenLocations.get(key) + 1; employee.lat += OFFSET_DISTANCE * offset; employee.lng += OFFSET_DISTANCE * offset; seenLocations.set(key, offset); } else { seenLocations.set(key, 0); } new google.maps.Marker({ position: { lat: employee.lat, lng: employee.lng }, map: map, title: `${employee.name} - ${employee.distance} km`, }); }); } window.onload = initMap; </script>
Was übergeben wir aus FileMaker https://deine_url.de/ki_calendar.php?data=André,52.5035525,13.4176949,7:30:00,8:22:30|Mario,52.5814763,13.3057333,9:30:00,11:00:00|Mario,52.5346344,13.4224666,12:00:00,13:00:00|,52.5346344,13.4224666,7:00:00,8:00:00|Philipp,52.4702886,13.2930662,13:00:00,14:00:00|David,52.4702886,13.2930662,10:00:00,11:00:00|Jennifer,52.5035525,13.4176949,9:30:00,10:22:30|Philipp,52.5035525,13.4176949,14:00:00,14:52:30|André,52.5035525,13.4176949,7:30:00,8:22:30|Jennifer,52.6053036,13.3540889,11:00:00,12:30:00|Martin,52.5727963,13.4187507,15:00:00,16:00:00 Fazit Die Rolle der KI in unserem Projekt Bei diesem Projekt haben wir die GPT-4 API von OpenAI genutzt, eine hochmoderne KI, die auf natürliche Sprachverarbeitung spezialisiert ist. Die KI übernimmt dabei eine entscheidende Rolle: Aufgaben der KI 1. Analyse der Daten: Die KI wertet die übermittelten Daten aus, einschließlich der Standorte und Verfügbarkeiten der Mitarbeiter, sowie der geforderten Zeitspanne. Sie trifft Entscheidungen, welche Mitarbeiter am besten geeignet sind, basierend auf: • Geografischer Nähe (Entfernung). • Zeitlicher Verfügbarkeit (Überlappung mit der Anforderungszeit). • Priorisierungskriterien. 2. Priorisierung der Mitarbeiter: Die KI sortiert die Mitarbeiter in Prioritätsklassen (hoch, mittel, niedrig), um Entscheidungsprozesse zu erleichtern. Dies hilft besonders bei komplexen Szenarien mit vielen Teilnehmern und unterschiedlichen Anforderungen. 3. Flexible Verarbeitung: Mit der eingebauten Sprachverarbeitungsfähigkeit kann die KI auf benutzerdefinierte Regeln und neue Anforderungen reagieren. Im Falle unseres Projekts wird sichergestellt, dass: • Der Supportanforderer (Mario) nicht als Unterstützer in die Liste aufgenommen wird. • Die Ergebnisse stets im JSON-Format zurückgegeben werden, damit sie direkt weiterverarbeitet werden können. Warum GPT-4? • Komplexe Entscheidungen: GPT-4 kann nicht nur einfache Regeln anwenden, sondern auch inhaltlich komplexe Daten wie geografische Koordinaten, Zeitfenster und Prioritäten verknüpfen. • Flexibilität: Änderungen in den Anforderungen (z. B. neue Priorisierungsregeln) lassen sich einfach umsetzen, indem wir die KI-Prompts anpassen. • Effizienz: Im Gegensatz zu einer festen Programmierung ermöglicht die KI schnelle Analysen und Rückmeldungen, ohne den PHP-Code manuell anzupassen. Das Projekt zeigt, wie sich PHP, eine KI-API und Google Maps zu einem leistungsstarken Logistik-Tool kombinieren lassen. Dies ist natürlich nur eine erste Version und verarbeitet nur wenige Daten.
Tumblr media
0 notes
filemakerexperts · 5 months ago
Text
Optimierte Routenplanung mit Google Maps und FileMaker
In der heutigen digitalen Arbeitswelt spielen nahtlose Integrationen zwischen verschiedenen Systemen eine entscheidende Rolle. Besonders bei der Optimierung von Routen für Außendienstmitarbeiter oder Logistikunternehmen ist es wichtig, sowohl Zeit als auch Kosten zu sparen. Dieser Blog-Post zeigt, wie man Google Maps für die dynamische Routenplanung nutzt und gleichzeitig Daten in FileMaker integriert. Das Problem Viele Unternehmen stehen vor der Herausforderung, eine Vielzahl von Wegpunkten (Aufträgen) optimal zu sortieren, um eine effiziente Route zu erstellen. Dies erfordert Tools, die nicht nur Kartenansichten bereitstellen, sondern auch die Reihenfolge der Stopps optimieren und diese Informationen zurück an das System (in diesem Fall FileMaker) senden können. Die Lösung Das folgende PHP-Script löst dieses Problem, indem es: 1. Google Maps API verwendet, um Wegpunkte zu optimieren. 2. Die optimierte Reihenfolge als Liste darstellt. 3. Ein FileMaker-Script auslöst, um diese Daten für weitere Prozesse zu nutzen. Der erste Schritt steht darin die Daten die benötigt werden innerhalb von FileMaker zu sammeln. Dies ist möglich über die Erstellung einer Variable per Listenfunktion, SQL oder per Schleife. Wie auch immer die Umsetzung erfolgt, am Ende benötigen wir eine URL die wir an unser PHP-Script senden können. Enthalten sein müssen, die Geo-Daten und natürlich eindeutige IDs aus FileMaker damit diese Daten später auch wieder in FileMaker verarbeitet werden können. Eine URL sollte diesen Aufbau haben: https://dein-server.de/maps.php?json=true&origin=52.5212262,13.3340740 &destination=52.5070279,13.345529 &waypoints=52.4897075,13.3290075|52.4902317,13.355636|52.5037865,13.3271369|52.504083,13.3386575&auftrag=24501|24510|24547|24551|24573|24580&facilities=6039|1940|4540|5036|6634|6545 Diese werden dann über den FM-Befehl, -AUS URL einfügen- übergeben. Wie der Aufbau innerhalb von FileMaker funktioniert ist selbstredend. Ein WebViewer innerhalb von FileMaker muss natürlich vorhanden sein. Die Rückgabe muss an den WebViewer z.B. eine globale Variable erfolgen. Das PHP Script: ```php <?php // API-Schlüssel für Google Maps $apiKey = 'Ihr_Google_Maps_API_Schlüssel'; // Werte aus GET-Parametern holen oder Standardwerte setzen $origin = isset($_GET['origin']) ? $_GET['origin'] : '52.515956,13.388512'; $destination = isset($_GET['destination']) ? $_GET['destination'] : '52.4981845,13.4610157'; $waypoints = isset($_GET['waypoints']) ? $_GET['waypoints'] : ''; $auftrag = isset($_GET['auftrag']) ? explode('|', $_GET['auftrag']) : []; $facilities = isset($_GET['facilities']) ? explode('|', $_GET['facilities']) : []; // Wegpunkte in ein Array umwandeln $waypointsArray = explode('|', $waypoints); ?> ``` 1. Origin (Startpunkt) Der Origin ist der Ausgangspunkt der Route. • Es handelt sich um die Position, von der die Route beginnt. • In der Regel wird sie als geografische Koordinate angegeben (z. B. 52.515956,13.388512 für Berlin). • Beispiel: Eine zentrale Lagerhalle oder der Startpunkt eines Fahrers. 2. Destination (Endpunkt) Die Destination ist das Ziel der Route. • Es ist der Punkt, an dem die Route endet. • Ähnlich wie der Origin wird auch die Destination als geografische Koordinate angegeben. • Beispiel: Der Zielort eines Lieferauftrags. 3. Waypoint (Zwischenstation) Ein Waypoint ist eine oder mehrere Zwischenstationen entlang der Route. • Es handelt sich um Orte, die der Fahrer besuchen muss, bevor er sein Ziel (Destination) erreicht. • Waypoints können ebenfalls als Koordinaten (z. B. 52.5062585,13.2845797) angegeben werden. • Sie werden oft verwendet, um Stopps bei Kunden, Lieferstationen oder Servicepunkten darzustellen. • Google Maps erlaubt, mehrere Waypoints anzugeben, um komplexe Routen zu erstellen. Das Script liest die Parameter origin, destination, waypoints, auftrag, und facilities, um sie für die Routenplanung vorzubereiten. Diese Parameter könnten direkt aus einer FileMaker-Datenbank oder einer anderen Quelle kommen. Die Routenoptimierung Das Herzstück des Scripts ist die Funktion initMap(): function initMap() { const map = new google.maps.Map(document.getElementById('map'), { zoom: 13, center: { lat: <?php echo explode(',', $origin)[0]; ?>, lng: <?php echo explode(',', $origin)[1]; ?> }, }); const directionsService = new google.maps.DirectionsService(); const directionsRenderer = new google.maps.DirectionsRenderer({ map: map }); directionsService.route( { origin: locations[0].position, destination: locations[locations.length - 1].position, waypoints: locations.slice(1, -1).map(location => ({ location: location.position, stopover: true, })), travelMode: google.maps.TravelMode.DRIVING, optimizeWaypoints: true, }, (result, status) => { if (status === 'OK') { directionsRenderer.setDirections(result); const waypointOrder = result.routes[0].waypoint_order.map(index => locations[index + 1].label); optimizedOrder = [locations[0].label, ...waypointOrder, locations[locations.length - 1].label]; } else { console.error('Error:', status); } } ); } Die Funktion ruft die Google Maps Directions API auf, um die optimale Reihenfolge der Wegpunkte zu berechnen. Diese Reihenfolge wird in optimizedOrder gespeichert. Integration mit FileMaker Das Script enthält einen Button, der die optimierte Reihenfolge an ein FileMaker-Script übergibt: function sendToFileMaker() { if (optimizedOrder.length > 0) { const filemakerUrl = `fmp://$/DEINE_DATEI?script=(0002)_Planung_Direkt_aus_Maps_holen&param=${encodeURIComponent(optimizedOrder.join('\n'))}`; window.location.href = filemakerUrl; } else { alert('Die Route ist noch nicht optimiert. Bitte warten.'); } } Dieser Button ermöglicht es, die optimierten Daten direkt in FileMaker zu laden, wo sie für weitere Aktionen wie die Gruppierung von Aufträgen oder Berichte verwendet werden können. Vorteile der Lösung 1. Zeitersparnis: Die API optimiert die Route automatisch. 2. Nahtlose Integration: Die Übergabe an FileMaker erfolgt reibungslos. 3. Flexibilität: Die Darstellung in der Karte ermöglicht eine visuelle Kontrolle der Route. 4. Erweiterbarkeit: Zusätzliche Funktionen wie das Hinzufügen von z.B. Anlagen können leicht integriert werden. Fazit Dieses Script ist eine effektive Lösung für Unternehmen, die ihre Logistikprozesse optimieren möchten. Durch die Kombination von Google Maps und FileMaker wird eine leistungsstarke, flexible und leicht implementierbare Lösung geschaffen. Als Anmerkung ist allerdings zu beachten, in diesem Fall können nur 10 Punkte verarbeitet werden. Dies erfordert eine Vorauswahl der an Google zu übergebenen Punkte. Dies kann direkt schon über die Google APIs erfolgen oder z.B. die Haversche Formel. Zum Überblick das gesamte Script:
// Werte aus GET-Parametern holen oder Standardwerte setzen $origin = isset($_GET['origin']) ? $_GET['origin'] : '52.515956,13.388512'; $destination = isset($_GET['destination']) ? $_GET['destination'] : '52.4981845,13.4610157'; $waypoints = isset($_GET['waypoints']) ? $_GET['waypoints'] : ''; $auftrag = isset($_GET['auftrag']) ? explode('|', $_GET['auftrag']) : []; $facilities = isset($_GET['facilities']) ? explode('|', $_GET['facilities']) : []; // Wegpunkte in ein Array umwandeln um Anzeige über PIN $waypointsArray = explode('|', $waypoints); ?> <!DOCTYPE html> <html> <head> <title>Dynamische Route</title> <script src="https://maps.googleapis.com/maps/api/js?key=DEIN_API_KEY"></script> <script> let optimizedOrder = []; // Variable für die optimierte Reihenfolge function initMap() { // Initialisiere die Karte const map = new google.maps.Map(document.getElementById('map'), { zoom: 13, center: { lat: <?php echo explode(',', $origin)[0]; ?>, lng: <?php echo explode(',', $origin)[1]; ?> }, }); const locations = [ { position: { lat: <?php echo explode(',', $origin)[0]; ?>, lng: <?php echo explode(',', $origin)[1]; ?> }, label: '<?php echo $auftrag[0] ?? "Start"; ?>', facilities: '<?php echo $facilities[0] ?? "Keine Anlagen"; ?>', }, <?php foreach ($waypointsArray as $index => $point): ?> { position: { lat: <?php echo explode(',', $point)[0]; ?>, lng: <?php echo explode(',', $point)[1]; ?> }, label: '<?php echo $auftrag[$index + 1] ?? "Waypoint"; ?>', facilities: `<?php echo str_replace(',', '<br>', $facilities[$index + 1] ?? "Keine Anlagen"); ?>`, }, <?php endforeach; ?> { position: { lat: <?php echo explode(',', $destination)[0]; ?>, lng: <?php echo explode(',', $destination)[1]; ?> }, label: '<?php echo $auftrag[count($auftrag) - 1] ?? "Ziel"; ?>', facilities: '<?php echo $facilities[count($facilities) - 1] ?? "Keine Anlagen"; ?>', } ]; // Details zu Markern und Kreisen hinzufügen locations.forEach((location) => { const marker = new google.maps.Marker({ position: location.position, map: map, label: { text: location.label, color: '#000', fontSize: '12px', fontWeight: 'bold', }, }); }); map.fitBounds(bounds); } function sendToFileMaker() { if (optimizedOrder.length > 0) { const filemakerUrl = `fmp://$/DEINE_DATEI?script=Planung&param=${encodeURIComponent(optimizedOrder.join('\n'))}`; window.location.href = filemakerUrl; } else { alert('Die Route ist noch nicht optimiert. Bitte warten.'); } } </script> </head> <body onload="initMap()"> <div id="map" style="width: 100%; height: 80%;"></div> <button onclick="sendToFileMaker()">Optimierte Reihenfolge senden</button> </body> </html>
Tumblr media
0 notes
metasyssoftware-blog · 8 years ago
Text
3 things you need to know about FileMaker’s new initiative for small businesses
The FileMaker platform offers some key advantages for small businesses looking to go digital. Many small businesses are turning to FileMaker for building custom apps to replace their manual processes.  We highlight below why FileMaker is increasingly becoming a Preferred Option for small and even medium-sized enterprises
· FileMaker offers a Small Business Service Toolkit to its customers at no extra cost. As a part of the toolkit, FileMaker offers an eBook - “How to Transform Your Service Business”.It addresses the common business issues faced by small businesses and how to overcome them by building custom apps. It also has case studies covering real business issues faced by small companies and how they overcame their challenges
· FileMaker provides a Starter App along with the Toolkit. The app is compatible with FileMaker 15 platform. It has all the basic functionalities to help small businesses in addressing common business processes like resource scheduling, inventory management etc. The app is designed by a member of the FileMaker Business Alliance Platinum Partner. It is accompanied by a webinar which addresses issues faced by small businesses when it comes to inventory planning and management and invoice generation.
· An extended support in the form of ‘Idea to iPad’ Bundle is also available. Annual licenses of FileMaker Pro Advanced and FileMaker Server are offered as a bundle to create and deploy custom apps.  It includes 10 hours of consultation with a Customer Success Manager and FileMaker Business Alliance professional developer. The personal one-on-one interaction helps the developer understand your business and advise a solution appropriate for your situation.
This customer centric approach has proved to help small businesses in digitizing their business using FileMaker. Furthermore, one can start with one module or one process and add modules to meet the growing needs of the business.  Businesses and employees quickly see concrete returns on their investment. The platform also allows you to tweak and fine tune your processes over time. MetaSys Software has over 12 years of experience with a team of Certified FileMaker Developers and huge experience in client server as well as web application development using FileMaker PHP API. If you are looking for a quick solution or have queries related to FileMaker feel free to contact us.
As a FileMaker Business Alliance Member, we are also authorized resellers of FileMaker licenses. If you are looking to buy any of the FileMaker licenses then please click here.
lt��[�-
0 notes
metasyssoftware-blog · 8 years ago
Text
5 reasons why FM Quizilla 4 is important for aspiring Certified FileMaker 14 developers
FileMaker is meant for building custom apps that work seamlessly across platforms Windows, Mac OS X, Web or mobile devices like iPad, iPhone. Even with limited amount of programming knowledge, it is now possible to build a custom app using FileMaker. Millions of people are now using apps created by FileMaker for their businesses.
Many developers have basic to intermediary knowledge of FileMaker but there is dearth of avenues to learn and test advanced programming skills. In order to address the needs of aspiring FM developers, MetaSys Software developed an App ‘FM Quizilla 4’ using it, one can practice for FileMaker 14 certification.
There are several features in FM Quizilla 4 app that makes it a complete package. Here are 5 reasons why FM Quizilla 4 is a handy product for people who are looking for FileMaker 14 certification.
1.       The FM Quizilla 4 app is compatible with iOS devices supporting 7 and above. It can be easily downloaded from Apple store.
2.       The app allows you to share scores with other developers through social media & your performance is displayed on the dashboard. It displays total test attempts, last score and other such relevant details.
3.       The questions asked in the app are in the same format as that of the certification test.  They are categorized to cover different modules and topics.
4.       Practicing with this app is snappy. You can check your answer and proceed to the next question or review all your answers whether correct or incorrect towards the end of the test. The app gives you ample ammunition to prepare yourself for the certification.
5.       Once you gain more confidence, you can set a timer and proceed to next modules. Thus you systematically progress towards preparing yourself thoroughly for the certification.
Any difficult job can be done with proper planning and strategizing. The app helps you to plan and act so that you move in the right direction to crack the test. Happy learning and good luck for your certification!
0 notes
metasyssoftware-blog · 8 years ago
Text
PHP MYSQL: An important platform for web application development
Two decades ago, ‘PHP’ started out as a small open source project and today has evolved into a major scripting language. ‘PHP MySQL’ is now widely used for developing complex web applications. Here are some of the major advantages of using the PHP platform:
·         Easy to develop websites with interactive dynamic content as well as user-friendly.
·         PHP is fairly easy to learn and with PHP Model View Controller (MVC) framework is now available to develop, manage and maintain complex web applications.
·         LAMP, XAMPP are some of the better options to deploy the applications quickly & cost effectively.
·         PHP is compatible with all major web server platforms and web browsers.
·         PHP website development software can be easily embedded into an HTML file.
MetaSys Software has experienced PHP, MySQL developers who can help you with your requirements. Customers expect speed and often bounce rate goes up when websites load slowly. This can be effectively handled by experienced PHP developers at MetaSys. Our developers also use the  CakePHP Framework which speeds up the development process.
At MetaSys we offer PHP based web application development using MySQL and/or FileMaker as backend for multi-tier architectural solution. With FileMaker PHP API it is quick to extend existing FileMaker solution to web. A PHP MySQL being completely open source is a ccost-effectivecombination and allows you to develop a solution customized to your business needs.
Are looking for any consultation on these technologies? Feel free to
contact us
0 notes